El protocolo de transferencia de hipertexto (HTTP) constituye los cimientos de la red mundial, y se utiliza para cargar páginas web mediante enlaces de hipertexto. HTTP es un protocolo de capa de aplicación diseñado para transferir información entre los dispositivos conectados de la red, y se ejecuta sobre otras capas del conjunto de protocolos de la red.
La estructura básica de un mensaje HTTP (tanto petición como respuesta) consiste en una línea inicial (de solicitud o de estado), encabezados y, opcionalmente, un cuerpo. La línea inicial define la acción a realizar o el resultado de la petición. Los encabezados proporcionan metadatos adicionales, mientras que el cuerpo (si existe) contiene los datos que se están enviando o recibiendo.
Ejemplo: HTTP/1.1 200 OK Date: Sat, 09 Oct 2010 14:28:02 GMT Server: Apache Last-Modified: Tue, 01 Dec 2009 20:18:22 GMT ETag: "51142bc1-7449-479b075b2891b" Accept-Ranges: bytes Content-Length: 29769 Content-Type: text/htmlEl protocolo HTTP funciona mediante un modelo de cliente-servidor, donde un cliente (como un navegador web) envía una petición a un servidor, y este último responde con la información solicitada. El navegador envía la solicitud con un método (como GET para solicitar datos o POST para enviar información), una URL y encabezados opcionales. El servidor procesa la petición y devuelve una respuesta HTTP con un código de estado
HTTP define un conjunto de métodos de petición para indicar la acción que se desea realizar para un recurso determinado. Aunque estos también pueden ser sustantivos, estos métodos de solicitud a veces son llamados HTTP verbs. Cada uno de ellos implementan una semántica diferente, pero algunas características similares son compartidas por un grupo de ellos: ej. un request method puede ser safe, idempotent, o cacheable. GET El método GET solicita una representación de un recurso específico. Las peticiones que usan el método GET sólo deben recuperar datos. HEAD El método HEAD pide una respuesta idéntica a la de una petición GET, pero sin el cuerpo de la respuesta. POST El método POST se utiliza para enviar una entidad a un recurso en específico, causando a menudo un cambio en el estado o efectos secundarios en el servidor. PUT El modo PUT reemplaza todas las representaciones actuales del recurso de destino con la carga útil de la petición. DELETE El método DELETE borra un recurso en específico. CONNECT El método CONNECT establece un túnel hacia el servidor identificado por el recurso. OPTIONS El método OPTIONS es utilizado para describir las opciones de comunicación para el recurso de destino. TRACE El método TRACE realiza una prueba de bucle de retorno de mensaje a lo largo de la ruta al recurso de destino. PATCH El método PATCH es utilizado para aplicar modificaciones parciales a un recurso.
Los códigos de estado de respuesta HTTP indican si se ha completado satisfactoriamente una solicitud HTTP específica. Las respuestas se agrupan en cinco clases:
Respuestas informativas (100–199),
Respuestas satisfactorias (200–299),
Redirecciones (300–399),
Errores de los clientes (400–499),
y errores de los servidores (500–599).
Los códigos de estado se definen en la sección 10 deRFC 2616. Puedes obtener las especificaciones actualizadas en RFC 7231.